<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArMTXIO Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArMTXIO.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="classArMTXIO-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArMTXIO Class Reference<div class="ingroups"><a class="el" href="group__OptionalClasses.html">Optional Classes</a> &#124; <a class="el" href="group__DeviceClasses.html">Device Interface Classes</a> &#124; <a class="el" href="group__MTX.html">MTX/Pioneer LX Specific Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and other MTX-based robots).  
 <a href="classArMTXIO.html#details">More...</a></p>

<p><code>#include &lt;ArMTXIO.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7adc67ef6586aa8f5dc559754e3038bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7adc67ef6586aa8f5dc559754e3038bb"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Direction</b> { <b>DIGITAL_INPUT</b>, 
<b>DIGITAL_OUTPUT</b>, 
<b>INVALID</b>
 }</td></tr>
<tr class="separator:a7adc67ef6586aa8f5dc559754e3038bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3d6e28d7bfca2e817e1341a98952ca45"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a3d6e28d7bfca2e817e1341a98952ca45">ArMTXIO</a> (const char *dev=&quot;/dev/mtx&quot;)</td></tr>
<tr class="memdesc:a3d6e28d7bfca2e817e1341a98952ca45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a3d6e28d7bfca2e817e1341a98952ca45">More...</a><br /></td></tr>
<tr class="separator:a3d6e28d7bfca2e817e1341a98952ca45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a815ca10341bb99b6a64a45c71839fed8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a815ca10341bb99b6a64a45c71839fed8">closeIO</a> (void)</td></tr>
<tr class="memdesc:a815ca10341bb99b6a64a45c71839fed8"><td class="mdescLeft">&#160;</td><td class="mdescRight">tries to close the device. Returns false if operation failed  <a href="#a815ca10341bb99b6a64a45c71839fed8">More...</a><br /></td></tr>
<tr class="separator:a815ca10341bb99b6a64a45c71839fed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a755b99ea8ad23a23905580968a24a714"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a755b99ea8ad23a23905580968a24a714">getAnalogIOBlock1</a> (unsigned int analog, unsigned short *val)</td></tr>
<tr class="memdesc:a755b99ea8ad23a23905580968a24a714"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a value from analog IO block 1 (which contains 16 inputs. First 4.  <a href="#a755b99ea8ad23a23905580968a24a714">More...</a><br /></td></tr>
<tr class="separator:a755b99ea8ad23a23905580968a24a714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5147df962b6fa1891e2b3474ce2e165f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a5147df962b6fa1891e2b3474ce2e165f">getAnalogIOBlock2</a> (unsigned int analog, unsigned short *val)</td></tr>
<tr class="memdesc:a5147df962b6fa1891e2b3474ce2e165f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current state of analog outputs in block 2. There are 4 outputs, range.  <a href="#a5147df962b6fa1891e2b3474ce2e165f">More...</a><br /></td></tr>
<tr class="separator:a5147df962b6fa1891e2b3474ce2e165f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b2a36a8cdb1adad076a37061ddec1dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b2a36a8cdb1adad076a37061ddec1dc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a8b2a36a8cdb1adad076a37061ddec1dc">getBumperInput</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a8b2a36a8cdb1adad076a37061ddec1dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the bumper Input Monitoring Reg <br /></td></tr>
<tr class="separator:a8b2a36a8cdb1adad076a37061ddec1dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add40b94926e0a977826bd5242b1ad684"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add40b94926e0a977826bd5242b1ad684"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#add40b94926e0a977826bd5242b1ad684">getCompatibilityCode</a> ()</td></tr>
<tr class="memdesc:add40b94926e0a977826bd5242b1ad684"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the Compatibility Code <br /></td></tr>
<tr class="separator:add40b94926e0a977826bd5242b1ad684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab012a068f62533b648897414ce1c49a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab012a068f62533b648897414ce1c49a0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#ab012a068f62533b648897414ce1c49a0">getDigitalInputBit</a> (int bank, int bit)</td></tr>
<tr class="memdesc:ab012a068f62533b648897414ce1c49a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get one bit of an input bank. <em>bank</em> and <em>bit</em> are 0-indexed. <br /></td></tr>
<tr class="separator:ab012a068f62533b648897414ce1c49a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dbe6aa70f5f7c788c494a2c2bf0def6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1dbe6aa70f5f7c788c494a2c2bf0def6"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a1dbe6aa70f5f7c788c494a2c2bf0def6">getFirmwareRevision</a> ()</td></tr>
<tr class="memdesc:a1dbe6aa70f5f7c788c494a2c2bf0def6"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the Firmware Revision <br /></td></tr>
<tr class="separator:a1dbe6aa70f5f7c788c494a2c2bf0def6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d621fa024c4fa0dfa9604f94ab9f084"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d621fa024c4fa0dfa9604f94ab9f084"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a9d621fa024c4fa0dfa9604f94ab9f084">getFirmwareVersion</a> ()</td></tr>
<tr class="memdesc:a9d621fa024c4fa0dfa9604f94ab9f084"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the Firmware Version <br /></td></tr>
<tr class="separator:a9d621fa024c4fa0dfa9604f94ab9f084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c2f565d8ddf71d8608a32832829c80b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c2f565d8ddf71d8608a32832829c80b"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a6c2f565d8ddf71d8608a32832829c80b">getFPGAType</a> ()</td></tr>
<tr class="memdesc:a6c2f565d8ddf71d8608a32832829c80b"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the MTX FPGA Type <br /></td></tr>
<tr class="separator:a6c2f565d8ddf71d8608a32832829c80b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a512843991010de8b58b553a983a51f4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a512843991010de8b58b553a983a51f4e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a512843991010de8b58b553a983a51f4e">getLIDARSafety</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a512843991010de8b58b553a983a51f4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the LIDAR Safety Status Register <br /></td></tr>
<tr class="separator:a512843991010de8b58b553a983a51f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7310a80431e27afe2114b4d15a8bae32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7310a80431e27afe2114b4d15a8bae32"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a7310a80431e27afe2114b4d15a8bae32">getLightPole</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a7310a80431e27afe2114b4d15a8bae32"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the Light Pole IO Output Control Register <br /></td></tr>
<tr class="separator:a7310a80431e27afe2114b4d15a8bae32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeccb40db48a2b8e941e7375617706e1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeccb40db48a2b8e941e7375617706e1c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimeUSec</b> (<a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a> *timeUSec)</td></tr>
<tr class="separator:aeccb40db48a2b8e941e7375617706e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44728b8cbad2363ef3caf9db40cfcd9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af44728b8cbad2363ef3caf9db40cfcd9"></a>
<a class="el" href="classArRetFunctor1.html">ArRetFunctor1</a>&lt; bool, <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimeUSecCB</b> (void)</td></tr>
<tr class="separator:af44728b8cbad2363ef3caf9db40cfcd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e8e3d814729007a0f41c379e76bc98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95e8e3d814729007a0f41c379e76bc98"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a95e8e3d814729007a0f41c379e76bc98">getMotionPowerStatus</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a95e8e3d814729007a0f41c379e76bc98"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the motion power status <br /></td></tr>
<tr class="separator:a95e8e3d814729007a0f41c379e76bc98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd5c97ef1e103f1f53616c8779a8c7f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd5c97ef1e103f1f53616c8779a8c7f4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#afd5c97ef1e103f1f53616c8779a8c7f4">getPowerStatus1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:afd5c97ef1e103f1f53616c8779a8c7f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the Power Status Register <br /></td></tr>
<tr class="separator:afd5c97ef1e103f1f53616c8779a8c7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae975d74a9d5540af32ffe7a4774c5d18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae975d74a9d5540af32ffe7a4774c5d18"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#ae975d74a9d5540af32ffe7a4774c5d18">getPowerStatus2</a> (unsigned char *val)</td></tr>
<tr class="memdesc:ae975d74a9d5540af32ffe7a4774c5d18"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the Power Status Register 2 <br /></td></tr>
<tr class="separator:ae975d74a9d5540af32ffe7a4774c5d18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdb3d3f493f643c0de8620fc9c9cc80f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afdb3d3f493f643c0de8620fc9c9cc80f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#afdb3d3f493f643c0de8620fc9c9cc80f">getRegValue</a> (unsigned short reg, unsigned char *val)</td></tr>
<tr class="memdesc:afdb3d3f493f643c0de8620fc9c9cc80f"><td class="mdescLeft">&#160;</td><td class="mdescRight">for debugging purposes, just gets a raw register value <br /></td></tr>
<tr class="separator:afdb3d3f493f643c0de8620fc9c9cc80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04b364734fc191d615b3fcbd855542c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04b364734fc191d615b3fcbd855542c0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a04b364734fc191d615b3fcbd855542c0">isAnalogSupported</a> (void)</td></tr>
<tr class="memdesc:a04b364734fc191d615b3fcbd855542c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns true if analog values are supported <br /></td></tr>
<tr class="separator:a04b364734fc191d615b3fcbd855542c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e058904a383074449322d3dcb2e6a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77e058904a383074449322d3dcb2e6a3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a77e058904a383074449322d3dcb2e6a3">isEnabled</a> (void)</td></tr>
<tr class="memdesc:a77e058904a383074449322d3dcb2e6a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns true if the device is opened and operational <br /></td></tr>
<tr class="separator:a77e058904a383074449322d3dcb2e6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2860f600f2d9d64540e8371b32928311"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a2860f600f2d9d64540e8371b32928311">lock</a> (void)</td></tr>
<tr class="memdesc:a2860f600f2d9d64540e8371b32928311"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock global (shared) mutex for all <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> instances.  <a href="#a2860f600f2d9d64540e8371b32928311">More...</a><br /></td></tr>
<tr class="separator:a2860f600f2d9d64540e8371b32928311"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a3f5d3ac3d1c6b3e9408223e36e725a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a5a3f5d3ac3d1c6b3e9408223e36e725a">setAnalogIOBlock2</a> (unsigned int analog, unsigned short *val)</td></tr>
<tr class="memdesc:a5a3f5d3ac3d1c6b3e9408223e36e725a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set analog output. All analog outputs are in block 2. There are 4.  <a href="#a5a3f5d3ac3d1c6b3e9408223e36e725a">More...</a><br /></td></tr>
<tr class="separator:a5a3f5d3ac3d1c6b3e9408223e36e725a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab430cbe540ece2e0a85a486340eeb598"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab430cbe540ece2e0a85a486340eeb598"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#ab430cbe540ece2e0a85a486340eeb598">setDigitalOutputBit</a> (int bank, int bit)</td></tr>
<tr class="memdesc:ab430cbe540ece2e0a85a486340eeb598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set one bit of an output bank. <em>bank</em> and <em>bit</em> are 0-indexed. <br /></td></tr>
<tr class="separator:ab430cbe540ece2e0a85a486340eeb598"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6abc725e5b3af4474653551617ce007"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6abc725e5b3af4474653551617ce007"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#af6abc725e5b3af4474653551617ce007">setLightPole</a> (unsigned char *val)</td></tr>
<tr class="memdesc:af6abc725e5b3af4474653551617ce007"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the Light Pole IO Output Control Register <br /></td></tr>
<tr class="separator:af6abc725e5b3af4474653551617ce007"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6796234c0c4f46eb8ff0c5f941922084"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a6796234c0c4f46eb8ff0c5f941922084">setPowerOutput</a> (int bank, int bit, bool on)</td></tr>
<tr class="memdesc:a6796234c0c4f46eb8ff0c5f941922084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set only one power output identified by <em>bank</em> and <em>bit</em>.  <a href="#a6796234c0c4f46eb8ff0c5f941922084">More...</a><br /></td></tr>
<tr class="separator:a6796234c0c4f46eb8ff0c5f941922084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb1bde6630ed9ed8a1b78473fc476d07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb1bde6630ed9ed8a1b78473fc476d07"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#afb1bde6630ed9ed8a1b78473fc476d07">tryLock</a> ()</td></tr>
<tr class="memdesc:afb1bde6630ed9ed8a1b78473fc476d07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to lock without blocking (see <a class="el" href="classArMutex.html#a76ff7a4aa451cc9c2b08dda0ae77d823" title="Try to lock the mutex, but do not block. ">ArMutex::tryLock()</a>) <br /></td></tr>
<tr class="separator:afb1bde6630ed9ed8a1b78473fc476d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30f799f1e10d8120ce2461cb49505941"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a30f799f1e10d8120ce2461cb49505941">unlock</a> (void)</td></tr>
<tr class="memdesc:a30f799f1e10d8120ce2461cb49505941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock global (shared) mutex for all <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> instances.  <a href="#a30f799f1e10d8120ce2461cb49505941">More...</a><br /></td></tr>
<tr class="separator:a30f799f1e10d8120ce2461cb49505941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adeb605ebc6943a354885575328179577"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#adeb605ebc6943a354885575328179577">~ArMTXIO</a> (void)</td></tr>
<tr class="memdesc:adeb605ebc6943a354885575328179577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#adeb605ebc6943a354885575328179577">More...</a><br /></td></tr>
<tr class="separator:adeb605ebc6943a354885575328179577"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a5dc3faa57345015472214ed7b0445679"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dc3faa57345015472214ed7b0445679"></a>
Direction&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a5dc3faa57345015472214ed7b0445679">getDigitalBankDirection</a> (int bank)</td></tr>
<tr class="memdesc:a5dc3faa57345015472214ed7b0445679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/set value of digital IO banks (see class description above) Banks are 0-indexed. <br /></td></tr>
<tr class="separator:a5dc3faa57345015472214ed7b0445679"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2542706e9f34cd5e1896a11a75a79492"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a2542706e9f34cd5e1896a11a75a79492">setDigitalBankOutputs</a> (int bank, unsigned char val)</td></tr>
<tr class="separator:a2542706e9f34cd5e1896a11a75a79492"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4892b3cc96b9ff1aed50c5d63600c17"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#aa4892b3cc96b9ff1aed50c5d63600c17">getDigitalBankInputs</a> (int bank, unsigned char *val)</td></tr>
<tr class="memdesc:aa4892b3cc96b9ff1aed50c5d63600c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bits of the digital input bank.  <a href="#aa4892b3cc96b9ff1aed50c5d63600c17">More...</a><br /></td></tr>
<tr class="separator:aa4892b3cc96b9ff1aed50c5d63600c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b9960822ec8e1556d192f602ec6daf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a22b9960822ec8e1556d192f602ec6daf">getDigitalBankOutputs</a> (int bank, unsigned char *val)</td></tr>
<tr class="memdesc:a22b9960822ec8e1556d192f602ec6daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of the bits as they are currently set in the outputs.  <a href="#a22b9960822ec8e1556d192f602ec6daf">More...</a><br /></td></tr>
<tr class="separator:a22b9960822ec8e1556d192f602ec6daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:add1dd92e5d96c98492eea5767d22b677"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#add1dd92e5d96c98492eea5767d22b677">setPeripheralPowerBankOutputs</a> (int bank, unsigned char val)</td></tr>
<tr class="memdesc:add1dd92e5d96c98492eea5767d22b677"><td class="mdescLeft">&#160;</td><td class="mdescRight">get/set value of power output controls (see robot manual for information on what components and user outputs are controlled).  <a href="#add1dd92e5d96c98492eea5767d22b677">More...</a><br /></td></tr>
<tr class="separator:add1dd92e5d96c98492eea5767d22b677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade30cc9e19eba5f9b110b35c7f630c89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade30cc9e19eba5f9b110b35c7f630c89"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getPeripheralPowerBankOutputs</b> (int bank, unsigned char *val)</td></tr>
<tr class="separator:ade30cc9e19eba5f9b110b35c7f630c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:ac47bff0a034ae88b148c47b2efe88812"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#ac47bff0a034ae88b148c47b2efe88812">getDigitalIOInputMon1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:ac47bff0a034ae88b148c47b2efe88812"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the values of digital input/output monitoring registers 1 &amp; 2  <a href="#ac47bff0a034ae88b148c47b2efe88812">More...</a><br /></td></tr>
<tr class="separator:ac47bff0a034ae88b148c47b2efe88812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2521d19b43ce084c8a94e06bad46e7d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a2521d19b43ce084c8a94e06bad46e7d2">getDigitalIOInputMon2</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a2521d19b43ce084c8a94e06bad46e7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bits of the digital IO Input Monitoring 1.  <a href="#a2521d19b43ce084c8a94e06bad46e7d2">More...</a><br /></td></tr>
<tr class="separator:a2521d19b43ce084c8a94e06bad46e7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a434180e45de4e1eb25c49075f2e54cc6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a434180e45de4e1eb25c49075f2e54cc6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getDigitalIOOutputMon1</b> (unsigned char *val)</td></tr>
<tr class="separator:a434180e45de4e1eb25c49075f2e54cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ee66fe9dda193feeebfb1d06f90ab21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ee66fe9dda193feeebfb1d06f90ab21"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getDigitalIOOutputMon2</b> (unsigned char *val)</td></tr>
<tr class="separator:a7ee66fe9dda193feeebfb1d06f90ab21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a628c6551e20d9d7f87024b84ad1d7c0f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a628c6551e20d9d7f87024b84ad1d7c0f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a628c6551e20d9d7f87024b84ad1d7c0f">setSemaphore1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a628c6551e20d9d7f87024b84ad1d7c0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets/sets the Semaphore Registers <br /></td></tr>
<tr class="separator:a628c6551e20d9d7f87024b84ad1d7c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c668c202f2b89ce263b097330eb5602"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c668c202f2b89ce263b097330eb5602"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getSemaphore1</b> (unsigned char *val)</td></tr>
<tr class="separator:a3c668c202f2b89ce263b097330eb5602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a211ef116a152ce5e079f490c62d06e0e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a211ef116a152ce5e079f490c62d06e0e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setSemaphore2</b> (unsigned char *val)</td></tr>
<tr class="separator:a211ef116a152ce5e079f490c62d06e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14473e7bf15a0e5a2f443d4b905d4a83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14473e7bf15a0e5a2f443d4b905d4a83"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getSemaphore2</b> (unsigned char *val)</td></tr>
<tr class="separator:a14473e7bf15a0e5a2f443d4b905d4a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2c35ecfb492c6e61d5b24a32893c5ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2c35ecfb492c6e61d5b24a32893c5ac"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setSemaphore3</b> (unsigned char *val)</td></tr>
<tr class="separator:ad2c35ecfb492c6e61d5b24a32893c5ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3619510c3d92e9bc2f520df4da29bd72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3619510c3d92e9bc2f520df4da29bd72"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getSemaphore3</b> (unsigned char *val)</td></tr>
<tr class="separator:a3619510c3d92e9bc2f520df4da29bd72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62aabace1ba8ec8d7c9b0f4630837e31"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62aabace1ba8ec8d7c9b0f4630837e31"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setSemaphore4</b> (unsigned char *val)</td></tr>
<tr class="separator:a62aabace1ba8ec8d7c9b0f4630837e31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab86246c58ea3eefbe6e37ceea3bbb7a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab86246c58ea3eefbe6e37ceea3bbb7a3"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getSemaphore4</b> (unsigned char *val)</td></tr>
<tr class="separator:ab86246c58ea3eefbe6e37ceea3bbb7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a347544750832ee3ad008420255128da2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a347544750832ee3ad008420255128da2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>acquireSemaphore</b> (unsigned sem)</td></tr>
<tr class="separator:a347544750832ee3ad008420255128da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6d76219e515762fd07d1790482ac1bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6d76219e515762fd07d1790482ac1bf"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>releaseSemaphore</b> (unsigned sem)</td></tr>
<tr class="separator:ad6d76219e515762fd07d1790482ac1bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a5144dad1b3d3b21467c171416d22e0b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5144dad1b3d3b21467c171416d22e0b0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a5144dad1b3d3b21467c171416d22e0b0">getESTOPStatus1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a5144dad1b3d3b21467c171416d22e0b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the ESTOP status Registers <br /></td></tr>
<tr class="separator:a5144dad1b3d3b21467c171416d22e0b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5685626f97ebd48f3d8a73ad73aa08c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5685626f97ebd48f3d8a73ad73aa08c6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getESTOPStatus2</b> (unsigned char *val)</td></tr>
<tr class="separator:a5685626f97ebd48f3d8a73ad73aa08c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d7e5d4141b17ee2aff4668e4fe5573"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76d7e5d4141b17ee2aff4668e4fe5573"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getESTOPStatus3</b> (unsigned char *val)</td></tr>
<tr class="separator:a76d7e5d4141b17ee2aff4668e4fe5573"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65f608db5e70429a27b136f65f5184b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65f608db5e70429a27b136f65f5184b2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getESTOPStatus4</b> (unsigned char *val)</td></tr>
<tr class="separator:a65f608db5e70429a27b136f65f5184b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8882dbf9857d8dcd0f5dccce78764635"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8882dbf9857d8dcd0f5dccce78764635"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a8882dbf9857d8dcd0f5dccce78764635">compareESTOPStatus4HighNibbleAgainst</a> (int val)</td></tr>
<tr class="memdesc:a8882dbf9857d8dcd0f5dccce78764635"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares the high nibble of this byte against the passed in val, returns true if it matches. <br /></td></tr>
<tr class="separator:a8882dbf9857d8dcd0f5dccce78764635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a607d7a55d0e1b2d1bfe95951df137d25"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a607d7a55d0e1b2d1bfe95951df137d25"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a607d7a55d0e1b2d1bfe95951df137d25">getDigitalOutputControl1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a607d7a55d0e1b2d1bfe95951df137d25"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets/sets Digital IO Output Control Registers 1 &amp; 2 <br /></td></tr>
<tr class="separator:a607d7a55d0e1b2d1bfe95951df137d25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad91aa761279f03d58265fffc8248e8f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad91aa761279f03d58265fffc8248e8f1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setDigitalOutputControl1</b> (unsigned char *val)</td></tr>
<tr class="separator:ad91aa761279f03d58265fffc8248e8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab08c5a21b57259c37f0045720f0b7441"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab08c5a21b57259c37f0045720f0b7441"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getDigitalOutputControl2</b> (unsigned char *val)</td></tr>
<tr class="separator:ab08c5a21b57259c37f0045720f0b7441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add06250e81d8d554396dfbcdba750e52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add06250e81d8d554396dfbcdba750e52"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setDigitalOutputControl2</b> (unsigned char *val)</td></tr>
<tr class="separator:add06250e81d8d554396dfbcdba750e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a27a9234707bc2286fb4485fcd977e32c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a27a9234707bc2286fb4485fcd977e32c">getPeripheralPower1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a27a9234707bc2286fb4485fcd977e32c"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets/sets the Peripheral Power Control Regs 1 &amp; 2 These control power to core and robot components, and to user/auxilliary power outputs.  <a href="#a27a9234707bc2286fb4485fcd977e32c">More...</a><br /></td></tr>
<tr class="separator:a27a9234707bc2286fb4485fcd977e32c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf8d51631b53ac1af842620698af1bfa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf8d51631b53ac1af842620698af1bfa"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#adf8d51631b53ac1af842620698af1bfa">setPeripheralPower1</a> (unsigned char *val)</td></tr>
<tr class="memdesc:adf8d51631b53ac1af842620698af1bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">bank 0 <br /></td></tr>
<tr class="separator:adf8d51631b53ac1af842620698af1bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c3d6ee6c2e10314c6c9cef73bb3c75c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c3d6ee6c2e10314c6c9cef73bb3c75c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a9c3d6ee6c2e10314c6c9cef73bb3c75c">getPeripheralPower2</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a9c3d6ee6c2e10314c6c9cef73bb3c75c"><td class="mdescLeft">&#160;</td><td class="mdescRight">bank 1 <br /></td></tr>
<tr class="separator:a9c3d6ee6c2e10314c6c9cef73bb3c75c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b258603eb05b7304b3011e10aaf0b43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b258603eb05b7304b3011e10aaf0b43"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a4b258603eb05b7304b3011e10aaf0b43">setPeripheralPower2</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a4b258603eb05b7304b3011e10aaf0b43"><td class="mdescLeft">&#160;</td><td class="mdescRight">bank 1 <br /></td></tr>
<tr class="separator:a4b258603eb05b7304b3011e10aaf0b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89b356e28785c2578ce31f3073b9ec01"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89b356e28785c2578ce31f3073b9ec01"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a89b356e28785c2578ce31f3073b9ec01">getPeripheralPower3</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a89b356e28785c2578ce31f3073b9ec01"><td class="mdescLeft">&#160;</td><td class="mdescRight">bank 2 <br /></td></tr>
<tr class="separator:a89b356e28785c2578ce31f3073b9ec01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf62ca70ab5ba2bf0ceab74b9d68d7eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf62ca70ab5ba2bf0ceab74b9d68d7eb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#abf62ca70ab5ba2bf0ceab74b9d68d7eb">setPeripheralPower3</a> (unsigned char *val)</td></tr>
<tr class="memdesc:abf62ca70ab5ba2bf0ceab74b9d68d7eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">bank 2 <br /></td></tr>
<tr class="separator:abf62ca70ab5ba2bf0ceab74b9d68d7eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a4c88f07800f423817ecf198b1f53c990"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c88f07800f423817ecf198b1f53c990"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArMTXIO.html#a4c88f07800f423817ecf198b1f53c990">getLIDARControl</a> (unsigned char *val)</td></tr>
<tr class="memdesc:a4c88f07800f423817ecf198b1f53c990"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets/sets the LIDAR Control Reg <br /></td></tr>
<tr class="separator:a4c88f07800f423817ecf198b1f53c990"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2412b1acfb621a71b6f3168abe9588c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2412b1acfb621a71b6f3168abe9588c8"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>setLIDARControl</b> (unsigned char *val)</td></tr>
<tr class="separator:a2412b1acfb621a71b6f3168abe9588c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a74d2256a902345ed574b20c63d959e08"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74d2256a902345ed574b20c63d959e08"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimer0</b> (unsigned char *val)</td></tr>
<tr class="separator:a74d2256a902345ed574b20c63d959e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4142fc43c08502f943605869a907d3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4142fc43c08502f943605869a907d3e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimer1</b> (unsigned char *val)</td></tr>
<tr class="separator:af4142fc43c08502f943605869a907d3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a77cb50dc0348e41560164dc3387bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6a77cb50dc0348e41560164dc3387bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimer2</b> (unsigned char *val)</td></tr>
<tr class="separator:ac6a77cb50dc0348e41560164dc3387bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a424d40361fefa04c4d1efa3fe081e25c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a424d40361fefa04c4d1efa3fe081e25c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>getLPCTimer3</b> (unsigned char *val)</td></tr>
<tr class="separator:a424d40361fefa04c4d1efa3fe081e25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af685e49b4af9b13bb87a9774ca994a11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af685e49b4af9b13bb87a9774ca994a11"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myAnalogEnabled</b></td></tr>
<tr class="separator:af685e49b4af9b13bb87a9774ca994a11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8b720a3b141b7d55f855f5ef42f6047"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8b720a3b141b7d55f855f5ef42f6047"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myCompatibilityCode</b></td></tr>
<tr class="separator:ae8b720a3b141b7d55f855f5ef42f6047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8df000b2ae76f7f31547a3af6504754a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8df000b2ae76f7f31547a3af6504754a"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myDigitalBank1</b></td></tr>
<tr class="separator:a8df000b2ae76f7f31547a3af6504754a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea4fe1e42026c7a4f8807bfcb3fd3ce3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea4fe1e42026c7a4f8807bfcb3fd3ce3"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myDigitalBank2</b></td></tr>
<tr class="separator:aea4fe1e42026c7a4f8807bfcb3fd3ce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87a79e6d55e1ceb39de9598167a80002"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87a79e6d55e1ceb39de9598167a80002"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myDigitalBank3</b></td></tr>
<tr class="separator:a87a79e6d55e1ceb39de9598167a80002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a594d1853df073b2a3ca9b7c2507609a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a594d1853df073b2a3ca9b7c2507609a1"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myDigitalBank4</b></td></tr>
<tr class="separator:a594d1853df073b2a3ca9b7c2507609a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a8fa67c6605f545783c964bd1263fc2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a8fa67c6605f545783c964bd1263fc2"></a>
<a class="el" href="classArRetFunctorC.html">ArRetFunctorC</a>&lt; bool, <a class="el" href="classArMTXIO.html">ArMTXIO</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myDisconnectCB</b></td></tr>
<tr class="separator:a6a8fa67c6605f545783c964bd1263fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e42f27ce2a84dfbb42033b55d8237dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e42f27ce2a84dfbb42033b55d8237dc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myEnabled</b></td></tr>
<tr class="separator:a2e42f27ce2a84dfbb42033b55d8237dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab72381c535e00cbb9f68be01ad5aae96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab72381c535e00cbb9f68be01ad5aae96"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myFD</b></td></tr>
<tr class="separator:ab72381c535e00cbb9f68be01ad5aae96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a935891e1659ae9f5a6f64357017965c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a935891e1659ae9f5a6f64357017965c3"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myFirmwareRevision</b></td></tr>
<tr class="separator:a935891e1659ae9f5a6f64357017965c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d8fa1dbbb8abf421959026cf7594e13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d8fa1dbbb8abf421959026cf7594e13"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myFirmwareVersion</b></td></tr>
<tr class="separator:a9d8fa1dbbb8abf421959026cf7594e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae59a89751c83ec146608bf4a6e6c4065"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae59a89751c83ec146608bf4a6e6c4065"></a>
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>myFPGAType</b></td></tr>
<tr class="separator:ae59a89751c83ec146608bf4a6e6c4065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b7cee4eb3a9d0083bc9bbdaa645e70a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b7cee4eb3a9d0083bc9bbdaa645e70a"></a>
<a class="el" href="classArRetFunctor1C.html">ArRetFunctor1C</a>&lt; bool, <a class="el" href="classArMTXIO.html">ArMTXIO</a>, <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myLPCTimeUSecCB</b></td></tr>
<tr class="separator:a7b7cee4eb3a9d0083bc9bbdaa645e70a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c7c7613fbbbaac7643e79ed535505c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c7c7613fbbbaac7643e79ed535505c9"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myNumBanks</b></td></tr>
<tr class="separator:a5c7c7613fbbbaac7643e79ed535505c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:ac3c501bfec79008f51a66a7c74a03232"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3c501bfec79008f51a66a7c74a03232"></a>
static <a class="el" href="classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ourMutex</b></td></tr>
<tr class="separator:ac3c501bfec79008f51a66a7c74a03232"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and other MTX-based robots). </p>
<p>On Linux this class uses the <code>mtx</code> driver to interface with the MTX digital and analog IO, and control switched power outputs.</p>
<p>The <code>mtx</code> driver module must be loaded for this interface to work.</p>
<p>The <code>mtx</code> interface (<code>/dev/mtx</code>) is opened automatically in the <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> constructor. If successful, <a class="el" href="classArMTXIO.html#a77e058904a383074449322d3dcb2e6a3" title="returns true if the device is opened and operational ">isEnabled()</a> will then return true.</p>
<p>The MTX IO is organized as two sets of 8-bit "banks" of inputs, and two 8-bit "banks" of outputs.</p>
<p>To read the state input, use <a class="el" href="classArMTXIO.html#ac47bff0a034ae88b148c47b2efe88812" title="gets the values of digital input/output monitoring registers 1 &amp; 2 ">getDigitalIOInputMon1()</a> and <a class="el" href="classArMTXIO.html#a2521d19b43ce084c8a94e06bad46e7d2" title="Returns the bits of the digital IO Input Monitoring 1. ">getDigitalIOInputMon2()</a>, or <a class="el" href="classArMTXIO.html#aa4892b3cc96b9ff1aed50c5d63600c17" title="Returns the bits of the digital input bank. ">getDigitalBankInputs()</a> with bank index 0 or 1.</p>
<p>To set state of output, use setDigitalOutputControl1() and setDigitalOutputControl2(), or <a class="el" href="classArMTXIO.html#a2542706e9f34cd5e1896a11a75a79492">setDigitalBankOutputs()</a> with bank index 2 or 3.</p>
<p>Multile <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> objects may be instatiated; a shared may be locked and unlocked by calling <a class="el" href="classArMTXIO.html#a2860f600f2d9d64540e8371b32928311" title="Lock global (shared) mutex for all ArMTXIO instances. ">lock()</a> and <a class="el" href="classArMTXIO.html#a30f799f1e10d8120ce2461cb49505941" title="Unlock global (shared) mutex for all ArMTXIO instances. ">unlock()</a>.</p>
<dl class="section note"><dt>Note</dt><dd>Available on Linux only </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxAnalogIOExample_8cpp-example.html#_a7">mtxAnalogIOExample.cpp</a>, and <a class="el" href="mtxDigitalIOExample_8cpp-example.html#_a7">mtxDigitalIOExample.cpp</a>.</dd>
</dl></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a3d6e28d7bfca2e817e1341a98952ca45"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArMTXIO::ArMTXIO </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dev</em> = <code>&quot;/dev/mtx&quot;</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<p>Constructor for the <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> class.</p>
<p>This will open the device named by <em>dev</em> (the default is "/dev/amrio" if the argument is omitted). It will find the number of digital banks and set the to inputs. It will also attempt to take an analog reading, which will fail if there is not analog chip present. If the conversion fails it will disable the analog portion of the code.</p>
<p>Check <a class="el" href="classArMTXIO.html#a77e058904a383074449322d3dcb2e6a3" title="returns true if the device is opened and operational ">isEnabled()</a> to see if the device was properly opened during construction. </p>

</div>
</div>
<a class="anchor" id="adeb605ebc6943a354885575328179577"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ArMTXIO::~ArMTXIO </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>
<p>Attempt to close the device if it was opened </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a815ca10341bb99b6a64a45c71839fed8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::closeIO </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>tries to close the device. Returns false if operation failed </p>
<p>Close the device when <a class="el" href="classAria.html" title="Contains global initialization, deinitialization and other global functions. ">Aria</a> exits. </p>

</div>
</div>
<a class="anchor" id="a755b99ea8ad23a23905580968a24a714"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getAnalogIOBlock1 </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>analog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned short *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a value from analog IO block 1 (which contains 16 inputs. First 4. </p>
<p>4 inputs 0-30V, then 4 inputs 0-20v, then 2 inputs 0-30v, then 2 input s 0-10v) </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">analog</td><td>Which input to get value from, 0-indexed. </td></tr>
    <tr><td class="paramname">val</td><td>Pointer to value to write value to. Values are in volts * 1000. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxAnalogIOExample_8cpp-example.html#a12">mtxAnalogIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5147df962b6fa1891e2b3474ce2e165f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getAnalogIOBlock2 </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>analog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned short *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get current state of analog outputs in block 2. There are 4 outputs, range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">analog</td><td>Which input to get value from, 0-indexed. </td></tr>
    <tr><td class="paramname">val</td><td>Pointer to value to write value to. Values are in volts * 1000. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxAnalogIOExample_8cpp-example.html#a13">mtxAnalogIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa4892b3cc96b9ff1aed50c5d63600c17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getDigitalBankInputs </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the bits of the digital input bank. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the ioctl call was succcessfull, false otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a22b9960822ec8e1556d192f602ec6daf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getDigitalBankOutputs </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the state of the bits as they are currently set in the outputs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bank</td><td>which bank to check </td></tr>
    <tr><td class="paramname">val</td><td>the byte to write the values into </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the request was satisfied, false otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ac47bff0a034ae88b148c47b2efe88812"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getDigitalIOInputMon1 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>gets the values of digital input/output monitoring registers 1 &amp; 2 </p>
<p>Returns the bits of the digital IO Input Monitoring 1.</p>
<dl class="section return"><dt>Returns</dt><dd>true if the ioctl call was succcessfull, false otherwise </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxDigitalIOExample_8cpp-example.html#a12">mtxDigitalIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a2521d19b43ce084c8a94e06bad46e7d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getDigitalIOInputMon2 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the bits of the digital IO Input Monitoring 1. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the ioctl call was succcessfull, false otherwise </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxDigitalIOExample_8cpp-example.html#a13">mtxDigitalIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a27a9234707bc2286fb4485fcd977e32c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::getPeripheralPower1 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>gets/sets the Peripheral Power Control Regs 1 &amp; 2 These control power to core and robot components, and to user/auxilliary power outputs. </p>
<p>Refer to robot manual for information on which components and outputs are controlled by which bits in the peripheral power bitmasks. bank 0 </p>

</div>
</div>
<a class="anchor" id="a2860f600f2d9d64540e8371b32928311"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArMTXIO::lock </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Lock global (shared) mutex for all <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> instances. </p>
<p>This allows multiple access to MTX IO (through multiple <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> objects). </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxAnalogIOExample_8cpp-example.html#a11">mtxAnalogIOExample.cpp</a>, and <a class="el" href="mtxDigitalIOExample_8cpp-example.html#a11">mtxDigitalIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5a3f5d3ac3d1c6b3e9408223e36e725a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::setAnalogIOBlock2 </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>analog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned short *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set analog output. All analog outputs are in block 2. There are 4. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">analog</td><td>Which input to get value from, 0-indexed. </td></tr>
    <tr><td class="paramname">val</td><td>Pointer to value to write value to. Values are in volts * 1000. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2542706e9f34cd5e1896a11a75a79492"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::setDigitalBankOutputs </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bank</td><td>the bank number to use for mtx only 2 &amp; 3 are outputs </td></tr>
    <tr><td class="paramname">val</td><td>the status of the 8-bits in a single byte. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="add1dd92e5d96c98492eea5767d22b677"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::setPeripheralPowerBankOutputs </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get/set value of power output controls (see robot manual for information on what components and user outputs are controlled). </p>
<p>Banks are 0-indexed. </p>

</div>
</div>
<a class="anchor" id="a6796234c0c4f46eb8ff0c5f941922084"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArMTXIO::setPowerOutput </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set only one power output identified by <em>bank</em> and <em>bit</em>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bank</td><td>Which power digital IO output bank to change. 0-indexed. </td></tr>
    <tr><td class="paramname">bit</td><td>Which bit to set or clear. 1-indexed. If <em>on</em> is true, set this bit to 1 (on). If <em>on</em> is false, clear this bit to 0 (off). </td></tr>
    <tr><td class="paramname">on</td><td>true to turn output on, false to turn it off. For example, aux 5V is documented as bank 3 bit 1, so to turn it on, call setPowerOutput(2, 1, true); </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a30f799f1e10d8120ce2461cb49505941"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int ArMTXIO::unlock </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unlock global (shared) mutex for all <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> instances. </p>
<p>This allows multiple access to MTX IO (through multiple <a class="el" href="classArMTXIO.html" title="Interface to digital and analog I/O and switched power outputs on MTX core (used in Pioneer LX and ot...">ArMTXIO</a> objects). </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mtxDigitalIOExample_8cpp-example.html#a15">mtxDigitalIOExample.cpp</a>.</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArMTXIO.h</li>
<li>ArMTXIO.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArMTXIO.html">ArMTXIO</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
